def get_grade(score):
    """根据分数返回对应的等级"""
    if 90 <= score <= 100:
        return "优"
    elif 70 <= score < 90:
        return "良"
    elif 0 <= score < 70:
        return "差"
        
    else:
        return "无效分数"

def input_student_scores():
    """录入学生成绩并显示等级"""
    students = []
    while True:
        # 输入学生姓名
        name = input("请输入学生姓名（输入'q'结束录入）：")
        if name.lower() == 'q':
            break
        
        # 输入并验证分数
        while True:
            try:
                score = float(input(f"请输入{name}的期末成绩（0-100）："))
                if 0 <= score <= 100:
                    break
                else:
                    print("分数必须在0-100之间，请重新输入！")
            except ValueError:
                print("输入错误，请输入有效的数字！")
        
        # 获取等级
        grade = get_grade(score)
        students.append({"姓名": name, "分数": score, "等级": grade})
        print(f"{name}的成绩等级为：{grade}\n")
    
    # 显示所有学生成绩
    if students:
        print("\n===== 学生成绩汇总 =====")
        for student in students:
            print(f"姓名：{student['姓名']}，分数：{student['分数']}，等级：{student['等级']}")
    else:
        print("没有录入任何学生成绩！")

if __name__ == "__main__":
    print("===== 学生期末成绩录入系统 =====")
    input_student_scores()
    print("\n程序结束！")